package cn.kgc.mapper;

import cn.kgc.pojo.Jobposting;
import cn.kgc.util.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

@Mapper
public interface JobpostingMapper {
    /**
     * 描述：根据Id获取Jobposting对象
     * @param resumeId
     */
    List<Jobposting> findById(Integer resumeId);

    /**
     * 描述：获取所有的Jobposting对象
     */
    List<Jobposting> findAll();

    /**
     * 描述：新增保存Jobposting对象
     */
    int save(Jobposting jobposting);

    /**
     * 描述：根据Id删除Jobposting对象
     * @param id
     */
    int delete(Serializable id);

    /**
     * 描述：更新Jobposting对象
     */
    int update(Jobposting jobposting);

    /**
     * 根据不确定的条件，动态查询
     */
    List<Jobposting> query(Object params);

    /**
     * 根据不确定的条件，动态分页查询
     */
    Page queryByPage(Object params, Page page);

    /**
     * 查询当日招聘信息数量
     */
    Integer getCount();

    /**
     * 根据用户id和招聘信息状态查询发布待审核的招聘信息
     */
    List<Jobposting> getJbposting(@Param("userId") Integer userId);

    /**
     * 根据用户id查询发布已审核的招聘信息
     */
    List<Jobposting> getHasJbposting(Integer userId);

    /**
     * 根据用户id查询发布审核不合格的招聘信息
     * @param userId
     * @return
     */
    List<Jobposting> getNoJbposting(Integer userId);

    /**
     * 根据用户id查询已下架的招聘信息
     * @param userId
     * @return
     */
    List<Jobposting> getJbpostingXiajia(Integer userId);

    /**
     * 根据招聘信息Id修改简历状态为下线4
     */
    Integer updateJobposting(@Param("resumeId") Integer resumeId,@Param("state") Integer state);


}
